/*
 * Application.h
 *
 *  Created on: 26 mars 2009
 *      Author: CHETIER
 */


//standards libraries
#include <stdlib.h>
#include <list>
#include<iostream>
using namespace std;

//Application includes
#include "SDL/include/SDL_framerate.h"
#include "SnowFlake.h"
#include "Cloud.h"
#include "AppParameters.h"


#ifndef APPLICATION_H_
#define APPLICATION_H_


/**
 * Current level container
 */
struct background
{
	//Image of the background
	SDL_Surface *srf_background;

	//Mask of the background
	SDL_Surface *srf_mask;

	//List of clouds
	list<Cloud*> *list_cloud;
};


class SnowApplication
{
private:
	SDL_Surface *_screen;
	SDL_Event _event;
	FPSmanager *_fpsManager;
	list<SnowFlake*> _listSnowFlake;
	background *_background;
	int _appExit;

public:
	SnowApplication();
	~SnowApplication();

	int appInitialize(int pScreenWidth, int pSCreenHeight, int pScreenBits);
	int appLaunch();
	int handleInput();
	int think();
	int drawFrame();
};

#endif /* APPLICATION_H_ */
